
/*
Nombre:		sf_encode
Descripcion:	Funcion que encripta el password del usuario
Fecha:		2006.01.26
*/

create  FUNCTION dbo.sf_encode ( @Pas varchar(25) )
RETURNS varchar(30) AS

BEGIN
	Declare @PasEnc varchar(30)
	Declare @Len int
	Declare @Rem int
	Declare @Cypher varchar(50)
	Declare @Shift int
	Declare @Char varchar(1)
	Declare @nChar int
	Declare @Res varchar(1)
 	Declare @nVer int
	Set @Len = LEN(LTRIM(@Pas))
	Set @Rem = @Len
	Set @Cypher = ''
	WHILE @Rem>0
	  begin
	     Set @Shift  = @Rem * 2
	     Set @Char   = SUBSTRING(@Pas, @Rem, 1)
	     Set @nChar = ASCII(@Char) 
	     Set @nChar = @nChar + @Shift
	     Set @nChar = @nChar - 25
	     Set @Res = CHAR(@nChar)
	     Select @Res = Case  
	             When @Res = '"' Then  CHAR(250)
	             When @Res = '''' Then  CHAR(251)
	             When @Res = '%' Then  CHAR(252)
	             When @Res = '?' Then  CHAR(253)
	             When @Res = '&' Then  CHAR(254)
	             ELSE @Res
	     END
	     Set @Cypher = @Res + @Cypher
	     Set @Rem    = @Rem - 1
	   end
	   Select @PasEnc = Ltrim(RTrim(@Cypher))
	RETURN @PasEnc
END
go